前言
如今越來越重視健康與健身的時代,我們意識到了身體質量指數(BMI)的重要性。BMI不僅是健康狀態的一個重要指標,也是我們了解自己體重與身高關係的一個重要工具。基於這個想法,我們帶來了這款簡單易用的身高和體重BMI計算器,幫助您更清晰地了解自己的身體狀況。
功能
這裡我們會做出一個簡單的BMI計算器,功能會如同畫面顯示一樣,不過在這邊聲明一下因為沒有做防呆,所以書入數字以外的字的話是會散退的喔
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<LinearLayout
android:layout_width="404dp"
android:layout_height="551dp"
android:layout_marginTop="88dp"
android:orientation="vertical"
android:gravity="center"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.428"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/textView3"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:text="計算BMI"
android:textColor="@color/black"
android:gravity="center"
android:textSize="34sp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="horizontal">
<TextView
android:id="@+id/textView4"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="身高(cm)"
android:gravity="center"
android:textColor="@color/black"
android:textSize="24sp" />
<EditText
android:id="@+id/editTextTextPersonName"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:ems="10"
android:inputType="textPersonName" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="horizontal">
<TextView
android:id="@+id/textView2"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="體重(kg)"
android:gravity="center"
android:textColor="@color/black"
android:textSize="24sp" />
<EditText
android:id="@+id/editTextTextPersonName2"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:ems="10"
android:inputType="textPersonName" />
</LinearLayout>
<Button
android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:text="計算" />
<TextView
android:id="@+id/textView5"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="2"
android:gravity="center"
android:text="您的BMI"
android:textColor="@color/black"
android:textSize="24sp" />
<TextView
android:id="@+id/textView7"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="2"
android:gravity="center"
android:textSize="24sp" />
<TextView
android:id="@+id/textView6"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="2"
android:gravity="center"
android:textSize="24sp" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
Java 程式碼(code)
package com.example.demo;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import java.math.BigDecimal;
import java.text.DecimalFormat;
public class MainActivity extends AppCompatActivity {
EditText editText;
EditText editText2;
TextView textView7; //輸出文字 適中 過胖等.....
TextView textView6;
Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ById();//綁定元件
confirm_button();//計算按鈕
}
//綁定元件
public void ById(){
editText = findViewById(R.id.editTextTextPersonName); //身高
editText2 = findViewById(R.id.editTextTextPersonName2);//體重
textView7 = findViewById(R.id.textView7); //輸出文字 適中 過胖等.....
textView6 = findViewById(R.id.textView6); //輸出BMI數值
button = findViewById(R.id.button);
}
//計算按鈕
public void confirm_button(){
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
float number_high = Float.parseFloat(editText.getText().toString())/100;
float number_weight = Float.parseFloat(editText2.getText().toString());
float BMI = number_weight / (number_high * number_high);
DecimalFormat decimalFormat = new DecimalFormat("#.##");
String result = decimalFormat.format(BMI);
if(BMI < 18.5){
textView7.setText("過輕");
}
else if(18.5 <= BMI && BMI < 24){
textView7.setText("適中");
}
else if(24 <= BMI && BMI < 27){
textView7.setText("過重");
}
else{
textView7.setText("肥胖");
}
textView6.setText(result);
}
});
}
}
函式
在這裡我用到了我自定義的函式,包含了ById()和confirm_button它們的功能介紹如下
public void confirm_button(){
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
float number_high = Float.parseFloat(editText.getText().toString())/100;
float number_weight = Float.parseFloat(editText2.getText().toString());
float BMI = number_weight / (number_high * number_high);
DecimalFormat decimalFormat = new DecimalFormat("#.##");
String result = decimalFormat.format(BMI);
if(BMI < 18.5){
textView7.setText("過輕");
}
else if(18.5 <= BMI && BMI < 24){
textView7.setText("適中");
}
else if(24 <= BMI && BMI < 27){
textView7.setText("過重");
}
else{
textView7.setText("肥胖");
}
textView6.setText(result);
}
});
}
DecimalFormat decimalFormat = new DecimalFormat("#.##");
String result = decimalFormat.format(BMI);
if(BMI < 18.5){
textView7.setText("過輕");
}
else if(18.5 <= BMI && BMI < 24){
textView7.setText("適中");
}
else if(24 <= BMI && BMI < 27){
textView7.setText("過重");
}
else{
textView7.setText("肥胖");
}
//綁定元件
public void ById(){
editText = findViewById(R.id.editTextTextPersonName); //身高
editText2 = findViewById(R.id.editTextTextPersonName2);//體重
textView7 = findViewById(R.id.textView7); //輸出文字 適中 過胖等.....
textView6 = findViewById(R.id.textView6); //輸出BMI數值
button = findViewById(R.id.button);
}